import runtest from "RunTest"

const tconform <- object tconform
  const myTest == runtest.create[stdin, stdout, "tconform"]
  process
    var a1 : AbstractType
    const AType == type T op X end T
    a1 <- Integer
    myTest.check[a1 *> Integer, "a1 *> Integer"]
    myTest.check[None *> Integer, "None *> Integer"]
    myTest.check[None *> None, "None *> None"]
    myTest.check[None *> Any, "None *> Any"]
    myTest.check[None *> AType, "None *> AType"]

    myTest.check[! (Integer *> None), "! (Integer *> None)"]
    myTest.check[None *> None, "None *> None"]
    myTest.check[! (Any *> None), "! (Any *> None)"]
    myTest.check[! (AType *> None), "! (AType *> None)"]
    myTest.done
  end process
end tconform
